################################################
# Analysis for:
#
# Jordan, Soren and Cynthia J. Bowling. 2016. "The State of Polarization in the States." 
#  State and Local Government Review 48 (4): 220-226. DOI: 10.1177/0160323X17699527
#
# Required files: shormccarty.dta
#
################################################

library(foreign)
library(reshape)
library(ggplot2)

data <- read.dta("shormccarty.dta")  

names(data)
summary(data$year)

avg_polr_h <- rep(NA, (max(data$year) - min(data$year) + 1))
avg_polr_s <- rep(NA, (max(data$year) - min(data$year) + 1))
most_polr_h <- rep(NA, (max(data$year) - min(data$year) + 1))
most_polr_s <- rep(NA, (max(data$year) - min(data$year) + 1))

for(i in 1:(length(avg_polr_h))) {
	avg_polr_h[i] <- mean(subset(data$h_diffs, data$year == (1992+i)), na.rm = T)	
	avg_polr_s[i] <- mean(subset(data$s_diffs, data$year == (1992+i)), na.rm = T)
	most_polr_h[i] <- max(subset(data$h_diffs, data$year == (1992+i)), na.rm = T)
	most_polr_s[i] <- max(subset(data$s_diffs, data$year == (1992+i)), na.rm = T)
}

# Two sets of plots
Chamber <- c(rep("Lower", length(avg_polr_h)), rep("Upper", length(avg_polr_s)), 
	rep("Lower", length(avg_polr_h)), rep("Upper", length(avg_polr_s)))
Type <- c(rep("Average", length(avg_polr_h)*2), rep("Most", length(avg_polr_h)*2))

data.plot <- data.frame(year, avg_polr_h, avg_polr_s, most_polr_h, most_polr_s)
data.plot.melt <- melt(data.plot, id = "year")
names(data.plot.melt) <- c("Year", "Polarization", "Level")
data.plot.melt <- data.frame(data.plot.melt, Chamber, Type)

# Figure 2
#tiff("*", width = 7, height = 4, units = 'in', res = 300)
q <- ggplot(data = data.plot.melt, aes(x = Year, y = Level, lty = Chamber, col = Type), size = 2)
q + geom_line(size = 1) +
	theme_classic() +		# This is no gray background
	scale_colour_grey(start = 0.7, end = 0) +
	theme(axis.text.x = element_text(colour="black", size = 13), 
		axis.text.y = element_text(colour="black", size = 13), 
		axis.title.x = element_text(size = 20),
		axis.title.y = element_text(size = 16),
		legend.text = element_text(size = 13), 
		legend.position = "right") +
	ylab("Level of Polarization") + 
	xlab("Year") 
dev.off()


# These data come from Ballotpedia
# Although they stop in 2013, results indicate no composition changed as a result of 2013 in-year elections
#  https://ballotpedia.org/State_legislative_elections,_2013
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
AK_g <- c("I", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
AK_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "R", "R")
AK_h <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
AL_g <- c("D", "D", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
AL_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
AL_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
AR_g <- c("D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D")
AR_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R")
AR_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
AZ_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R")
AZ_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "S", "S", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
AZ_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
CA_g <- c("R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D")
CA_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
CA_h <- c("D", "D", "S", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
CO_g <- c("D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D")
CO_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
CO_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "R", "R", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
CT_g <- c("I", "I", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D")
CT_s <- c("D", "D", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
CT_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
DE_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
DE_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
DE_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
FL_g <- c("D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "I", "R", "R", "R", "R")
FL_s <- c("S", "S", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
FL_h <- c("D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
GA_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
GA_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
GA_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
HI_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D")
HI_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
HI_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
IA_g <- c("R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
IA_s <- c("D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "S", "S", "D", "D", "D", "D", "D", "D", "D", "D")
IA_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
ID_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
ID_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
ID_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
IL_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
IL_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
IL_h <- c("D", "D", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
IN_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
IN_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
IN_h <- c("D", "D", "R", "R", "S", "S", "D", "D", "D", "D", "D", "D", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
KS_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
KS_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
KS_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
KY_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D")
KY_s <- c("D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
KY_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
LA_g <- c("D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R")
LA_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
LA_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
MA_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D")
MA_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
MA_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
MD_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D")
MD_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
MD_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
ME_g <- c("R", "R", "I", "I", "I", "I", "I", "I", "I", "I", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
ME_s <- c("D", "D", "R", "R", "D", "D", "D", "D", "S", "S", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "D", "D")
ME_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
MI_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
MI_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
MI_h <- c("S", "S", "R", "R", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
MN_g <- c("R", "R", "R", "R", "R", "R", "I", "I", "I", "I", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D")
MN_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "D", "D")
MN_h <- c("D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
MO_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D")
MO_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
MO_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
MS_g <- c("R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
MS_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "D", "D", "D", "R", "R", "R", "R")
MS_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
MT_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
MT_s <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R")
MT_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "S", "S", "R", "R", "S", "S", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
NC_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R")
NC_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
NC_h <- c("D", "D", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
ND_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
ND_s <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
ND_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
NE_g <- c("D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
NE_s <- rep(NA, length(NE_g))
NE_h <- rep(NA, length(NE_g))
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
NH_g <- c("R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
NH_s <- c("R", "R", "R", "R", "R", "R", "D", "S", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R")
NH_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
NJ_g <- c("D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R") 
NJ_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "S", "S", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D") 
NJ_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D") 
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
NM_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
NM_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
NM_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
NV_g <- c("D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
NV_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D")
NV_h <- c("D", "D", "S", "S", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
NY_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D")
NY_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "R", "R", "R", "R")
NY_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
OH_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R")
OH_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
OH_h <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
OK_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
OK_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "S", "S", "R", "R", "R", "R", "R", "R")
OK_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
OR_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
OR_s <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "S", "S", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
OR_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "S", "S", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
PA_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
PA_s <- c("D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
PA_h <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
RI_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "I", "I", "I", "I")
RI_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
RI_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
SC_g <- c("R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
SC_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
SC_h <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
SD_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
SD_s <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
SD_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
TN_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
TN_s <- c("D", "D", "D", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "S", "S", "R", "R", "R", "R", "R", "R")
TN_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
TX_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
TX_s <- c("D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
TX_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
UT_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
UT_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
UT_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
VA_g <- c("D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R")
VA_s <- c("D", "D", "D", "S", "S", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R")
VA_h <- c("D", "D", "D", "D", "D", "S", "S", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
VT_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D")
VT_s <- c("R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
VT_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
WA_g <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
WA_s <- c("D", "D", "D", "D", "R", "R", "D", "D", "D", "D", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R")
WA_h <- c("D", "D", "R", "R", "R", "R", "S", "S", "S", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
WI_g <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
WI_s <- c("R", "R", "R", "D", "D", "R", "D", "D", "D", "D", "R", "R", "R", "R", "D", "D", "D", "D", "R", "R", "R", "R")
WI_h <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "R", "R", "R", "R")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
WV_g <- c("D", "D", "D", "D", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
WV_s <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
WV_h <- c("D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D")
#		   93   94   95   96   97   98   99   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14
WY_g <- c("D", "D", "R", "R", "R", "R", "R", "R", "R", "R", "D", "D", "D", "D", "D", "D", "D", "D", "R", "R", "R", "R")
WY_s <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")
WY_h <- c("R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R")

# I'm way too lazy to c() these together by hand, and I want to make sure they match the dataset order without
#  human error. Solution? get(), paste(), and a loop
control_g <- rep(NA, length(data[,1]))
control_s <- rep(NA, length(data[,1]))
control_h <- rep(NA, length(data[,1]))

for(i in 1:length(unique(data$st))) {
	temp_g <- get(paste(unique(data$st)[i],"_g", sep = ""))
	temp_s <- get(paste(unique(data$st)[i],"_s", sep = ""))
	temp_h <- get(paste(unique(data$st)[i],"_h", sep = ""))
	control_g[(((i - 1)*length(temp_g)) + 1):(i*length(temp_g))] <- temp_g	
	control_s[(((i - 1)*length(temp_s)) + 1):(i*length(temp_s))] <- temp_s	
	control_h[(((i - 1)*length(temp_h)) + 1):(i*length(temp_h))] <- temp_h	
}

# Unified or divided?
trifecta <- rep(NA, length(data[,1]))
# Two variables for the legislature. One to retain party control for testing. 
#  The other to 0/1 for dummies. 
legislature_p <- rep(NA, length(data[,1]))
legislature <- rep(NA, length(data[,1]))

for(i in 1:length(trifecta)) {
	legislature[i] <- ifelse(control_s[i] == control_h[i], 1, 0)
	legislature_p[i] <- ifelse(control_s[i] == control_h[i], control_h[i], 0)
	trifecta[i] <- ifelse(control_g[i] == legislature_p[i], 1, 0)
}

# Let's look at polarization in legislatures by party control

tri_avg_polr_h <- rep(NA, (max(data$year) - min(data$year) + 1))
tri_avg_polr_s <- rep(NA, (max(data$year) - min(data$year) + 1))
div_avg_polr_h <- rep(NA, (max(data$year) - min(data$year) + 1))
div_avg_polr_s <- rep(NA, (max(data$year) - min(data$year) + 1))
div_legis_avg_polr_h <- rep(NA, (max(data$year) - min(data$year) + 1))
div_legis_avg_polr_s <- rep(NA, (max(data$year) - min(data$year) + 1))

for(i in 1:(length(tri_avg_polr_h))) {
	tri_avg_polr_h[i] <- mean(subset(data$h_diffs, (data$year == (1992+i) & trifecta == 1)), na.rm = T)	
	tri_avg_polr_s[i] <- mean(subset(data$s_diffs, (data$year == (1992+i) & trifecta == 1)), na.rm = T)	
	div_avg_polr_h[i] <- mean(subset(data$h_diffs, (data$year == (1992+i) & trifecta == 0)), na.rm = T)	
	div_avg_polr_s[i] <- mean(subset(data$s_diffs, (data$year == (1992+i) & trifecta == 0)), na.rm = T)	
	div_legis_avg_polr_h[i] <- mean(subset(data$h_diffs, (data$year == (1992+i) & legislature == 0)), na.rm = T)	
	div_legis_avg_polr_s[i] <- mean(subset(data$s_diffs, (data$year == (1992+i) & legislature == 0)), na.rm = T)		
}

# Two sets of plots
Chamber <- c(rep("Lower", length(tri_avg_polr_h)), rep("Upper", length(tri_avg_polr_s)), 
	rep("Lower", length(div_avg_polr_h)), rep("Upper", length(div_avg_polr_s)))
Status <- c(rep("Unified", length(tri_avg_polr_h)*2), rep("Divided", length(tri_avg_polr_h)*2))

data.plot.2 <- data.frame(year, tri_avg_polr_h, tri_avg_polr_s, div_avg_polr_h, div_avg_polr_s)
data.plot.2.melt <- melt(data.plot.2, id = "year")
names(data.plot.2.melt) <- c("Year", "Polarization", "Level")
data.plot.2.melt <- data.frame(data.plot.2.melt, Chamber, Status)
data.plot.2.melt

data.plot.3 <- data.frame(year, tri_avg_polr_h, tri_avg_polr_s, div_legis_avg_polr_h, div_legis_avg_polr_s)
data.plot.3.melt <- melt(data.plot.3, id = "year")
names(data.plot.3.melt) <- c("Year", "Polarization", "Level")
data.plot.3.melt <- data.frame(data.plot.3.melt, Chamber, Status)
data.plot.3.melt


# Figure 3
#tiff("*", width = 7, height = 4, units = 'in', res = 300)
q <- ggplot(data = data.plot.2.melt, aes(x = Year, y = Level, lty = Chamber, col = Status), size = 2)
q + geom_line(size = 1) +
	theme_classic() +		# This is no gray background
	scale_colour_grey(start = 0.7, end = 0) +
	#scale_linetype_discrete(labels = c("Average Lower (Unified)", "Average Upper (Unified)", 
	#	"Average Lower (Divided)", "Average Upper (Divided)")) +
	theme(axis.text.x = element_text(colour="black", size = 13), 
		axis.text.y = element_text(colour="black", size = 13), 
		axis.title.x = element_text(size = 20),
		axis.title.y = element_text(size = 16),
		legend.text = element_text(size = 13), 
		legend.position = "right") +
	ylab("Level of Polarization") + 
	xlab("Year") 
dev.off()




data.plot.4 <- data.frame(year, legislature, trifecta, legislature_p, control_g, control_s, control_h)

# So, I'm going to convolute ggplot to backwards induce a histogram that I want
#  This is because aesthetics and such are mapped by histograms in a way that
#  makes it to where counting within variables is difficult in the plot call.
#  It's way easier to trick ggplot outside by making another dataframe.

trifecta.years <- rep(NA, sum(data.plot.4$trifecta, na.rm = T))
trifecta.parties <- rep(NA, sum(data.plot.4$trifecta, na.rm = T))
k <- 1
for(i in 1:length(unique(data.plot.4$year))) {
	tris <- subset(data.plot.4$control_s, (data.plot.4$year == (1992+i) & data.plot.4$trifecta == 1))
	trifecta.years[k:(k+length(tris)-1)] <- (1992+i)
	trifecta.parties[k:(k+length(tris)-1)] <- tris
	k <- k + length(tris)
}

Party <- rep(NA, length(trifecta.parties))
for(i in 1:length(Party)) {
	Party[i] <- ifelse(trifecta.parties[i] == "R", "Republican", "Democrat")
}

data.plot.hist <- data.frame(trifecta.years, trifecta.parties, Party)
names(data.plot.hist) <- c("Year", "Parties", "Party")

# Figure 1
#tiff("*", width = 7, height = 4, units = 'in', res = 300)
q <- ggplot(data = data.plot.hist, aes(x = Year, fill = Party))
q + geom_bar() + 
	scale_fill_grey(start = 0.4, end = 0) +
	theme(axis.text.x = element_text(colour="black", size = 13), 
		axis.text.y = element_text(colour="black", size = 13), 
		axis.title.x = element_text(size = 20),
		axis.title.y = element_text(size = 16),
		legend.text = element_text(size = 13), 
		legend.position = "right") +
	ylab("Count") + 
	xlab("Year") 
dev.off()









